package com.york.tinyrpc.protoss.springboot.startert.annotation;

import com.york.tinyrpc.protoss.constant.TinyRpcConstants;
import org.springframework.stereotype.Component;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 服务提供者注解（用于注册服务）
 * 表示某一个服务会被注册到注册中心，供消费者使用
 */
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Component
public @interface TinyRpcService {

    /**
     * 服务接口类
     */
    Class<?> interfaceClass() default void.class;

    /**
     * 版本
     */
    String serviceVersion() default TinyRpcConstants.DEFAULT_SYSTEM_VERSION;

}
